package cn.iune.erp.payment;

import java.math.BigDecimal;
import java.util.Map;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.itextpdf.text.Document;

import cn.iune.erp.invoice.AccountInvoice;
import cn.iune.erp.sale.SaleOrder;

public interface IPaymentService {

	void afterInsertPayment(AccountPayment obj);

	void beforeDeletePayment(String fID);

	Map<String, Object> accountPaymentConfirm(String rowID, String tUsercode, String tUsername, String userId,
			String employeeNo, String employeeName);

	Map<String, Object> accountPaymentActive(String rowID);

	//审核出入库单（改造为主从表不关联审核）
	Map<String, Object> accountPaymentAgreeIt(String rowID, String tUsercode, String tUsername, String userId,
			String employeeNo, String employeeName);

	Map<String, Object> accountPaymentUnAgree(String rowID);

	int accountPaymentClose(String rowID);

	int accountPaymentOpen(String rowID);

	void accountPaymentPrintPDF(String fID, Document doc) throws Exception;

	
	
	JSONObject checkWriteOffNo(JSONObject data);

	JSONObject dkhx(JSONObject data, String cUsercode, String cUsername, String userId, String employeeNo,
			String employeeName);

	JSONObject fdkhx(JSONObject data);

//	AccountInvoice accountPaymentYFKDInsert(PurchaseOrder dealObj, String cUsercode, String cUsername, String userId,
//			String autoState, int flowType, String autoPayment, String employeeNo, String employeeName);

//	AccountPayment accountPaymentYSKDInsertEx(String orderNo, String enterpriseNo, BigDecimal orderAmount,
//			BigDecimal discountCash, String tradeNo, String autoState, int flowType, int cashSettle, String cUsercode,
//			String cUsername, String userId, String employeeNo, String employeeName);

	AccountPayment accountPaymentSKDJInsert(AccountInvoice accountInvoice, BigDecimal orderAmount,
			BigDecimal discountCash, String tradeNo, String cUsercode, String cUsername, String userId,
			String employeeNo, String employeeName);

	int hxArrayData(String writeOffNo, String dealObject, String dealObjectLabel, String customerID, String customerNo,
			String shortName, String customerName, String revOpay, String clearType, String clearTypeLabel,
			String billType, String billTypeName, BigDecimal discountCashTotal, JSONArray rows1, JSONArray rows2,
			String orderNo, String projectNo, String cUsercode, String cUsername, String userId, String employeeNo,
			String employeeName, String enterpriseNo, String enterpriseName);

	AccountPayment accountPaymentYSKDInsert(SaleOrder saleOrder, String cUsercode, String cUsername, String userId,
			String employeeNo, String employeeName);



}